package com.elot.core.dao;

import java.util.Collection;
import java.util.Map;

import com.google.appengine.api.datastore.Key;

public interface GenericDao {
	
	public <T> T findObject(Class<T> c, Key pk);
	public <T> T findObject(Class<T> c, Long pk);
	public <T> T saveObject(T object);
//	public <T> void updateObject(T c);
	public void removeObject(Key pk);
	public <T> void removeObject(Class<T> c, Long pk);
	
	public <T> Collection<T> findAllObjects(Class<T> c);
	public <T> Collection<T> findObjectsByParams(Class<T> c, Map<String, Object> params);
	public <T> Collection<T> findByTemplate(T template);
}
